package com.transaction.simulate.service;


import com.transaction.common.base.PageInfo;
import com.transaction.simulate.model.dto.*;
import com.transaction.simulate.model.vo.ChannelAccountVo;

import java.util.List;
import java.util.Map;

public interface TransService {
    void generateChannelTransData(ChannelAccountVo channelAccountVo);

    List<ChannelTrans> getChannelTrans(ChannelTrans channelTrans, PageInfo pageInfo);

    void generateChannelTransFile(String channelCode, String transDate, List<String> dateRange);

    List<Map<String, Object>> getTransToMap(String channelCode, List<String> dateRange);

    void updateChannelTrans(String channelCode, List<Map<String, Object>> dataList);

    void insertChannelTrans(String channelCode, List<Map<String, Object>> dataList);

    void insertReconciliation(String channelCode, List<Map<String, Object>> dataList);

    void insertBonus(String channelCode, List<Map<String, Object>> dataList);

    List<Reconciliation> getReconciliation(Reconciliation reconciliation, PageInfo pageInfo);

    List<Bonus> getBonus(Bonus bonus, PageInfo pageInfo);

    List<ElContract> getElContract(ElContract elContract, PageInfo pageInfo);

    void generateChannel31ElContractFile(String channelCode, String transDate, List<String> dateRange);

    void generateChannel43ElContractFile(String channelCode, String transDate, List<String> dateRange);

    void deleteAll();

    void deleteAllElContract();

    void handleConfirmChannelTrans(String channelCode, List<Map<String, Object>> dataList);

    List<ChannelTransCfm> getChannelTransCfm(ChannelTransCfm channelTransCfm, PageInfo pageInfo);

    void deleteAllChannelTransCfm();

    List<TransVolStatistics> getTransVolStatistics(TransVolStatistics transVolStatistics, PageInfo pageInfo);

}
